10<s<=20 与10<s&&s<=20有什么不同

来源:百度知道 编辑:UC知道 时间:2024/05/25 04:30:43
我在一个程序里 if(10<s<=20 )结果运行到中间就运行不下去了
但是我换成(10<s&&s<=20)就运行下去了

区别是:10<s<=20 是一个数学表达式,不是C语言表达式。
而 10<s&&s<=20 才是一个合法的C语言表达式。
所以在C程序中,你用第一个表达式是错误的,第二个才是正确的。

10<s<=20 这种语法是错误的,数学中可以这么写,但程序中不能这么写

在C中,第一个不能执行,第二个才对。

10<s<=20 是用10<s的结果,即一个逻辑值0或1,和20比较,结果是个逻辑值.
因为0和1都小于20,所以上式的结果恒等于1.

10<s&&s<=20 是10<s的值和s<=20的值的逻辑与(而且是”短路”求值,即如果10<s==0,则不对s<=20部分求值而直接得出表达式的值0).这个表达式
等价于数学表达:10<s<=20